<?php
namespace Admin\Controller;
use Think\Controller;
class StuController extends AdminController
{
    public function index()
    {
        $user = M('user');
        $user->select();
        // $user->where('id=2')->select();//NO 不推荐
        $user->where(array('id'=>12))->select();

        $user->table('lover')->select();
        $user->table('lover')->alias('l')->select();

        $user->field('id,name')->select();
        $user->order(array('id'=>'desc'))->select();

        $user->limit(5)->select();
        $user->limit(2,10)->select();
        $user->page(2,10)->select();

        $data = $user->field('sex,count(*)')->group('sex')->select();
        $data = $user->field('sex,count(*)')->group('sex')->having('count(*)<10')->select();

        $data = $user->field('lover.name lname,user.name uname')->join('lover on user.id=lover.user_id')->select();
        $data = $user->field('l.name lname,u.name uname')->table('user u,lover l')->where('u.id=l.user_id')->select();

        $data = $user->field('province')->distinct(true)->select();

        $map = array();
        $map['name|sex'] = '1';
        $map['name&sex'] = '0';
        $user->where($map)->select();

        $map = array();
        $map['id'] = array(array('gt',12),array('lt',50));
        $user->where($map)->select();

        //组合查询
        // (name like '%n%' or sex = '1') and age = '12'
        $map = array();
        $map['name'] = array('like','%n%');
        $map['sex'] = '1';
        $map['_logic'] = 'OR';
        $where = array();
        $where['_complex'] = $map;
        $where['age'] = 12;
        $user->where($where)->select();

        //动态
        $data = $user->getById('1');
        $data = $user->getFieldByName('老王','id');

        echo $user->getLastSql().'<br>';
        var_dump($data);
    }

    //跳转
    public function jump()
    {
        //参1 提示信息
        //参2 url地址
        //参3 等待时间 success 最小1s error 最小1
        // $this->success('success',U('User/index'),0);
        // $this->error('error',U('User/index'),10);
        
        //重定向
        //redirect()
        //参1 URL   参2 参数(数组)
        //参3 时间  参4 提示信息
        // $this->redirect('User/index','',5);
        // $this->redirect('User/index','',3,'正在前往多拉多....');
        // $this->redirect('User/index','',0,'正在前往多拉多....');
        // $this->redirect('www.baidu.com','',0,'正在前往baidu....');
        
        //使用重定向函数  可以跳转任意页面
        //1. URL  2.时间  3.提示信息
        redirect('http://www.baidu.com',5,'正在前往baidu....');
    }

    //ajax操作
    public function doAjax()
    {
        if (!IS_AJAX) {
            $this->error('你迷路了吧? 呵呵呵...',U('User/index'));
            exit;
        }
        $data = M('user')->select();
        // echo json_encode($data);
        $this->ajaxReturn($data);
    }

    //自动生成URL
    public function getUrl()
    {
        echo U('add').'<br>';
        echo U('User/add').'<br>';
        echo U('Home/User/add').'<br>';

        echo U('Home/User/add@www.163.com').'<br>';
        echo U('Home/User/add#abc@www.163.com').'<br>';
    }


    //前置操作和后置操作
    public function add()
    {
        echo 'Admin Stu add<br>';
    }
    public function _before_add()
    {
        echo 'add before<br>';
    }
    public function _after_add()
    {
        echo 'add after<br>';
    }

    public function action()
    {
        //实例化控制器
        /*$app = new UserController();
        $app->index();*/

        // 实例化多层控制器  A()
       /* $app = A('User');
        $app->index();*/
        echo '我是正式工..<br>';
        $app = A('User','Event');
        var_dump($app->index());

        // 远程调用控制器的操作方法 R()
        // R('User/add');

    }

    public function test()
    {
        $stu = M('user');
        //查询指定字段的值 默认返回字串
        // $data = $stu->getField('name',true);//参2为返回数组
        // $data = $stu->getField('id,name,sex');
        // $data = $stu->where('id>10')->getField('name',true);
        
        //不执行语句,查看当前SQL
        //fetchSql(true) 写在链式操作之内
        // echo $data = $stu->fetchSql(true)->where('id=2')->setField('name','DDDDDDS');
        // $data = $stu->where('id=2')->setField('name','DDDDDDS');
        //积分 +5
        // M('score')->where('id=1')->setInc('score',5);
        // //+1
        // M('score')->where('id=2')->setInc('score');
        // //-1
        // M('score')->where('id=3')->setDec('score');

        // 得到最后一条执行的SQL语句
        // echo M('score')->getLastSql().'<br>';
        // 
        $data = M('user3')->where('id>10')->delete();
        dump($data);//TP自己的打印输出
    }

}